package com.wanjia.estate.service.bdservice.zjsbdcjysbdservice;

import com.wanjia.estate.pojo.entity.Zjsbdcjysbd;
import com.wanjia.estate.properties.FileTemplateProperties;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;

@Service
public class ExcelReaderWriterZjsbdcjysbdService {

    @Autowired
    private FileTemplateProperties fileTemplateProperties;

    public String ExcelReaderWriter(Zjsbdcjysbd zjsbdcjysbd, String folder) {
        String ywbh = zjsbdcjysbd.getYwbh();
        try {
            FileInputStream inputStream = new FileInputStream(fileTemplateProperties.getZjsbdcjysbdpath());
            Workbook workbook = WorkbookFactory.create(inputStream);
            Sheet sheet = workbook.getSheetAt(0);


            Row row3 = sheet.getRow(2);
            row3.getCell(1).setCellValue(ywbh);
            row3.getCell(7).setCellValue(zjsbdcjysbd.getSqrq());
            row3.getCell(10).setCellValue(zjsbdcjysbd.getDyrq());

            Row row4 = sheet.getRow(3);
            row4.getCell(2).setCellValue(zjsbdcjysbd.getYwlx());

            Row row6 = sheet.getRow(5);
            row6.getCell(2).setCellValue(zjsbdcjysbd.getKfsmc());
            row6.getCell(7).setCellValue(zjsbdcjysbd.getKfsmcsh());
            row6.getCell(10).setCellValue(zjsbdcjysbd.getKfsmclxdh());

            Row row8 = sheet.getRow(7);
            row8.getCell(2).setCellValue(zjsbdcjysbd.getZrfdlr());
            row8.getCell(7).setCellValue(zjsbdcjysbd.getZrfdlrsfzjhm());
            row8.getCell(10).setCellValue(zjsbdcjysbd.getZrfdlrlxdh());

            Row row10 = sheet.getRow(9);
            row10.getCell(2).setCellValue(zjsbdcjysbd.getSrf());
            row10.getCell(7).setCellValue(zjsbdcjysbd.getSrfsfzjhm());
            row10.getCell(10).setCellValue(zjsbdcjysbd.getSrflxdh());

            Row row12 = sheet.getRow(11);
            row12.getCell(2).setCellValue(zjsbdcjysbd.getSrfdlr());
            row12.getCell(7).setCellValue(zjsbdcjysbd.getSrfdlrsfzjhm());
            row12.getCell(10).setCellValue(zjsbdcjysbd.getSrfdlrlxdh());

            //附加业务
            Row row16 = sheet.getRow(15);
            row16.getCell(2).setCellValue(zjsbdcjysbd.getZrf1());
            row16.getCell(7).setCellValue(zjsbdcjysbd.getZrfsfzjhm1());
            row16.getCell(10).setCellValue(zjsbdcjysbd.getZrflxdh1());

            Row row18 = sheet.getRow(17);
            row18.getCell(2).setCellValue(zjsbdcjysbd.getZrfdlr1());
            row18.getCell(7).setCellValue(zjsbdcjysbd.getZrfdlrsfzjhm1());
            row18.getCell(10).setCellValue(zjsbdcjysbd.getZrflxdh1());

            Row row20 = sheet.getRow(19);
            row20.getCell(2).setCellValue(zjsbdcjysbd.getSrf1());
            row20.getCell(7).setCellValue(zjsbdcjysbd.getSrfsfzjhm1());
            row20.getCell(10).setCellValue(zjsbdcjysbd.getSrflxdh1());

            Row row22 = sheet.getRow(21);
            row22.getCell(2).setCellValue(zjsbdcjysbd.getSrfdlr1());
            row22.getCell(7).setCellValue(zjsbdcjysbd.getSrfdlrlxdh1());
            row22.getCell(10).setCellValue(zjsbdcjysbd.getSrfdlrlxdh1());

            Row row24 = sheet.getRow(23);
            row24.getCell(2).setCellValue(zjsbdcjysbd.getZl());
            row24.getCell(7).setCellValue(zjsbdcjysbd.getJzmj());//建筑面积
            row24.getCell(10).setCellValue(zjsbdcjysbd.getBdcdyh());

            Row row26 = sheet.getRow(25);
            row26.getCell(2).setCellValue(zjsbdcjysbd.getHtrq());
            row26.getCell(4).setCellValue(zjsbdcjysbd.getHtje());
            row26.getCell(7).setCellValue(zjsbdcjysbd.getQtmj());
            row26.getCell(10).setCellValue(zjsbdcjysbd.getSwbz());

            BigDecimal bigDecimal = new BigDecimal(zjsbdcjysbd.getCjzjbhs());
            BigDecimal bigDecimal1 = new BigDecimal(zjsbdcjysbd.getJzmj());
            String dj = bigDecimal.divide(bigDecimal1, 2, RoundingMode.HALF_UP).toString();

            Row row28 = sheet.getRow(27);
            row28.getCell(2).setCellValue(dj);
            row28.getCell(4).setCellValue(zjsbdcjysbd.getCjzjbhs());//不含税价格
            row28.getCell(7).setCellValue(zjsbdcjysbd.getSfhs());


            Row row30 = sheet.getRow(29);
            row30.getCell(2).setCellValue(zjsbdcjysbd.getFwxz());
            row30.getCell(4).setCellValue(zjsbdcjysbd.getGhyt());
            row30.getCell(7).setCellValue(zjsbdcjysbd.getJylx());

            Row row32 = sheet.getRow(31);
            row32.getCell(1).setCellValue(zjsbdcjysbd.getZcs());
            row32.getCell(3).setCellValue(zjsbdcjysbd.getSzc());
            row32.getCell(5).setCellValue(zjsbdcjysbd.getFwjg());
            row32.getCell(7).setCellValue(zjsbdcjysbd.getCx());
            row32.getCell(10).setCellValue(zjsbdcjysbd.getFj());

            Row row34 = sheet.getRow(33);
            row34.getCell(2).setCellValue(zjsbdcjysbd.getHdjsje());
            row34.getCell(7).setCellValue(zjsbdcjysbd.getFwsdswjg());

            Row row38 = sheet.getRow(37);
            row38.getCell(2).setCellValue(zjsbdcjysbd.getJsr());
            row38.getCell(4).setCellValue(zjsbdcjysbd.getSz());
            row38.getCell(5).setCellValue(zjsbdcjysbd.getJsje());
            row38.getCell(6).setCellValue(zjsbdcjysbd.getSl());
            row38.getCell(7).setCellValue(zjsbdcjysbd.getSksssq());
            row38.getCell(9).setCellValue(zjsbdcjysbd.getYjhkce());
            row38.getCell(10).setCellValue(zjsbdcjysbd.getSjje());

            Row row40 = sheet.getRow(39);
            row40.getCell(10).setCellValue(zjsbdcjysbd.getSrfyjskhj());

            Row row47 = sheet.getRow(46);
            row47.getCell(2).setCellValue(zjsbdcjysbd.getYcslrxm());
            row47.getCell(6).setCellValue(zjsbdcjysbd.getSwshryxm());
            row47.getCell(10).setCellValue(zjsbdcjysbd.getSwfhryxm());

            FileOutputStream outputStream = new FileOutputStream(folder+"/" +ywbh+ "jysbd.xlsx");
            workbook.write(outputStream);
            workbook.close();
            outputStream.close();
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
        File file = new File(folder+"/" +ywbh+ "jysbd.xlsx");
        return file.getPath();
    }
}
